home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
- * All Rights Reserved.
- *
- * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
- * the contents of this file may not be disclosed to third parties, copied or
- * duplicated in any form, in whole or in part, without the prior written
- * permission of Silicon Graphics, Inc.
- *
- * RESTRICTED RIGHTS LEGEND:
- * Use, duplication or disclosure by the Government is subject to restrictions
- * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
- * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
- * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
- * rights reserved under the Copyright Laws of the United States.
- */
- #define DIAG (1.0/1.414214)
- #define THICK (1.0/8.0)
- #define WIDE (5.0/8.0)
- #define HIGH (4.0/8.0)
- #define BEVEL (1.0/8.0)
- #define SCREEN (1.25-THICK)
-
- Matrix idmat = {
- {1.0, 0.0, 0.0, 0.0,},
- {0.0, 1.0, 0.0, 0.0,},
- {0.0, 0.0, 1.0, 0.0,},
- {0.0, 0.0, 0.0, 1.0,},
- };
-
- float edge_colors[8][3] = {
-
- {240, 240, 240},
- {200, 200, 200},
- {180, 180, 180},
- {150, 150, 150},
- {120, 120, 120},
- {80, 80, 80},
- {70, 70, 70},
- {50, 50, 50},
- };
-
- float edge_normals[8][3] = {
-
- {0.0, 1.0, 0.0},
- {0.0, DIAG, -DIAG},
- {1.0, 0.0, 0.0},
- {DIAG, 0.0, -DIAG},
- {-1.0, 0.0, 0.0},
- {-DIAG, 0.0, -DIAG},
- {0.0, -1.0, 0.0},
- {0.0, -DIAG, -DIAG},
-
- };
-
- float edge_polys[8][4][3] = {
-
- { {-WIDE, HIGH, 0.0},
- {-WIDE, HIGH, THICK},
- {WIDE, HIGH, THICK},
- {WIDE, HIGH, 0.0},
- },
-
- { {-WIDE+BEVEL, HIGH-BEVEL, -THICK},
- {-WIDE, HIGH, 0.0},
- {WIDE, HIGH, 0.0},
- {WIDE-BEVEL, HIGH-BEVEL, -THICK},
- },
-
- { {WIDE, HIGH, THICK},
- {WIDE, -HIGH, THICK},
- {WIDE, -HIGH, 0.0},
- {WIDE, HIGH, 0.0},
- },
-
- { {WIDE, -HIGH, 0.0},
- {WIDE-BEVEL, -HIGH+BEVEL, -THICK},
- {WIDE-BEVEL, HIGH-BEVEL, -THICK},
- {WIDE, HIGH, 0.0},
- },
-
- { {-WIDE, HIGH, 0.0},
- {-WIDE, -HIGH, 0.0},
- {-WIDE, -HIGH, THICK},
- {-WIDE, HIGH, THICK},
- },
-
- { {-WIDE, HIGH, 0.0},
- {-WIDE+BEVEL, HIGH-BEVEL, -THICK},
- {-WIDE+BEVEL, -HIGH+BEVEL, -THICK},
- {-WIDE, -HIGH, 0.0},
-
- },
-
- { {WIDE, -HIGH, 0.0},
- {WIDE, -HIGH, THICK},
- {-WIDE, -HIGH, THICK},
- {-WIDE, -HIGH, 0.0}
- },
-
- { {WIDE-BEVEL, -HIGH+BEVEL, -THICK},
- {WIDE, -HIGH, 0.0},
- {-WIDE, -HIGH, 0.0},
- {-WIDE+BEVEL, -HIGH+BEVEL, -THICK}
- },
-
- };
-
- float front_polys[1][4][3] = {
-
- { {-WIDE+BEVEL, HIGH-BEVEL, -THICK},
- {WIDE-BEVEL, HIGH-BEVEL, -THICK},
- {WIDE-BEVEL, -HIGH+BEVEL, -THICK},
- {-WIDE+BEVEL, -HIGH+BEVEL, -THICK},
- }
- };
-
- float front_normals[1][3] = {
-
- {0.0, 0.0, -1.0}
- };
-
- float back_polys[1][4][3] = {
-
- { {-WIDE, -HIGH, THICK},
- {WIDE, -HIGH, THICK},
- {WIDE, HIGH, THICK},
- {-WIDE, HIGH, THICK},
- }
- };
-
- float back_normals[1][3] = {
-
- {0.0, 0.0, 1.0}
- };
-
- float mat[] = {
- AMBIENT, 0.5, 0.5, 0.5,
- DIFFUSE, 0.5, 0.5, 0.5,
- SPECULAR, 1.0, 1.0, 1.0,
- SHININESS, 20.0,
- LMNULL
- };
-
- float tmp_mat[] = {
- AMBIENT, 0.5, 0.5, 0.5,
- DIFFUSE, 0.5, 0.5, 0.5,
- LMNULL
- };
-
-
- float light_model[] = {
- AMBIENT, 0.1, 0.1, 0.1,
- LOCALVIEWER, 0.0,
- LMNULL
- };
-
- float light1[] = {
- AMBIENT, 0.0, 0.0, 0.0,
- LCOLOR, 1.0, 1.0, 1.0,
- POSITION, -1.5, 2.0, 0.4, 0.0,
- LMNULL
- };
-
- float light2[] = {
- AMBIENT, 0.1, 0.1, 0.1,
- LCOLOR, 0.0, 0.2, 0.5,
- POSITION, 1.0, -1.0, 0.0, 0.0,
- LMNULL
- };
-
-
- /* starting spots for different numbers of buttons. x, y, z */
-
- float spot0[1] = {NULL};
-
- float spot1[1*3] = {
- 0.0, 0.0, -2.0,
- };
-
- float spot2[2*3] = {
- 1.0, 0.0, -2.5,
- -1.0, 0.0, -2.5,
- };
-
- float spot3[3*3] = {
- 1.5, 0.0, -3.5,
- 0.0, 0.0, -3.5,
- -1.5, 0.0, -3.5,
- };
-
- float spot4[4*3] = {
- 1.0, -0.8, -2.5,
- -1.0, -0.8, -2.5,
- 1.0, 0.8, -2.5,
- -1.0, 0.8, -2.5,
- };
-
-
- float spot5[5*3] = {
- 0.0, 0.0, -3.5,
- 1.5, -1.2, -3.5,
- -1.5, -1.2, -3.5,
- 1.5, 1.2, -3.5,
- -1.5, 1.2, -3.5,
- };
-
- float spot6[6*3] = {
- 1.1, -1.2, -3.5,
- -1.1, -1.2, -3.5,
- 1.1, 0.0, -3.5,
- -1.1, 0.0, -3.5,
- 1.1, 1.2, -3.5,
- -1.1, 1.2, -3.5,
- };
-
- float spot7[7*3] = {
- 0.75, -1.2, -3.5,
- -0.75, -1.2, -3.5,
- 1.5, 0.0, -3.5,
- 0.0, 0.0, -3.5,
- -1.5, 0.0, -3.5,
- 0.75, 1.2, -3.5,
- -0.75, 1.2, -3.5,
- };
-
- float spot8[8*3] = {
- 1.5, -1.2, -3.5,
- 0.0, -1.2, -3.5,
- -1.5, -1.2, -3.5,
- 0.75, 0.0, -3.5,
- -0.75, 0.0, -3.5,
- 1.5, 1.2, -3.5,
- 0.0, 1.2, -3.5,
- -1.5, 1.2, -3.5,
- };
-
- float spot9[9*3] = {
- 1.5, -1.2, -3.5,
- 0.0, -1.2, -3.5,
- -1.5, -1.2, -3.5,
- 1.5, 0.0, -3.5,
- 0.0, 0.0, -3.5,
- -1.5, 0.0, -3.5,
- 1.5, 1.2, -3.5,
- 0.0, 1.2, -3.5,
- -1.5, 1.2, -3.5,
- };
-
- float spot10[10*3] = {
- 1.4, -1.12, -4.5,
- 0.0, -1.12, -4.5,
- -1.4, -1.12, -4.5,
-
- 2.15, 0.0, -4.5,
- 0.7, 0.0, -4.5,
- -0.7, 0.0, -4.5,
- -2.15, 0.0, -4.5,
-
- 1.4, 1.12, -4.5,
- 0.0, 1.12, -4.5,
- -1.4, 1.12, -4.5,
- };
-
- float spot11[11*3] = {
- 2.15, -1.12, -4.5,
- 0.7, -1.12, -4.5,
- -0.7, -1.12, -4.5,
- -2.15, -1.12, -4.5,
-
- 1.4, 0.0, -4.5,
- 0.0, 0.0, -4.5,
- -1.4, 0.0, -4.5,
-
- 2.15, 1.12, -4.5,
- 0.7, 1.12, -4.5,
- -0.7, 1.12, -4.5,
- -2.15, 1.12, -4.5,
- };
-
- float spot12[12*3] = {
- 2.15, -1.12, -4.5,
- 0.7, -1.12, -4.5,
- -0.7, -1.12, -4.5,
- -2.15, -1.12, -4.5,
-
- 2.15, 0.0, -4.5,
- 0.7, 0.0, -4.5,
- -0.7, 0.0, -4.5,
- -2.15, 0.0, -4.5,
-
- 2.15, 1.12, -4.5,
- 0.7, 1.12, -4.5,
- -0.7, 1.12, -4.5,
- -2.15, 1.12, -4.5,
- };
-
- float spot13[13*3] = {
- 0.0, -2.24, -5.6,
-
- 2.15, -1.12, -5.6,
- 0.7, -1.12, -5.6,
- -0.7, -1.12, -5.6,
- -2.15, -1.12, -5.6,
-
- 1.4, 0.0, -5.6,
- 0.0, 0.0, -5.6,
- -1.4, 0.0, -5.6,
-
- 2.15, 1.12, -5.6,
- 0.7, 1.12, -5.6,
- -0.7, 1.12, -5.6,
- -2.15, 1.12, -5.6,
-
- 0.0, 2.24, -5.6,
- };
-
- float spot14[14*3] = {
- 1.4, -1.68, -4.5,
- 0.0, -1.68, -4.5,
- -1.4, -1.68, -4.5,
-
- 2.15, -0.56, -4.5,
- 0.7, -0.56, -4.5,
- -0.7, -0.56, -4.5,
- -2.15, -0.56, -4.5,
-
- 2.15, 0.56, -4.5,
- 0.7, 0.56, -4.5,
- -0.7, 0.56, -4.5,
- -2.15, 0.56, -4.5,
-
- 1.4, 1.68, -4.5,
- 0.0, 1.68, -4.5,
- -1.4, 1.68, -4.5,
- };
-
- float spot15[15*3] = {
- 2.15, -1.68, -4.5,
- 0.7, -1.68, -4.5,
- -0.7, -1.68, -4.5,
- -2.15, -1.68, -4.5,
-
- 2.15, -0.56, -4.5,
- 0.7, -0.56, -4.5,
- -0.7, -0.56, -4.5,
- -2.15, -0.56, -4.5,
-
- 2.15, 0.56, -4.5,
- 0.7, 0.56, -4.5,
- -0.7, 0.56, -4.5,
- -2.15, 0.56, -4.5,
-
- 1.4, 1.68, -4.5,
- 0.0, 1.68, -4.5,
- -1.4, 1.68, -4.5,
- };
-
- float spot16[16*3] = {
- 2.15, -1.68, -4.5,
- 0.7, -1.68, -4.5,
- -0.7, -1.68, -4.5,
- -2.15, -1.68, -4.5,
-
- 2.15, -0.56, -4.5,
- 0.7, -0.56, -4.5,
- -0.7, -0.56, -4.5,
- -2.15, -0.56, -4.5,
-
- 2.15, 0.56, -4.5,
- 0.7, 0.56, -4.5,
- -0.7, 0.56, -4.5,
- -2.15, 0.56, -4.5,
-
- 2.15, 1.68, -4.5,
- 0.7, 1.68, -4.5,
- -0.7, 1.68, -4.5,
- -2.15, 1.68, -4.5,
- };
-
- float spot32[32*3] = {
- 2.8, -2.8, -6.8,
- 1.4, -2.8, -6.8,
- 0.0, -2.8, -6.8,
- -1.4, -2.8, -6.8,
- -2.8, -2.8, -6.8,
-
- 2.8, -1.68, -6.8,
- 1.4, -1.68, -6.8,
- 0.0, -1.68, -6.8,
- -1.4, -1.68, -6.8,
- -2.8, -1.68, -6.8,
-
- 3.5, -0.56, -6.8,
- 2.1, -0.56, -6.8,
- 0.7, -0.56, -6.8,
- -0.7, -0.56, -6.8,
- -2.1, -0.56, -6.8,
- -3.5, -0.56, -6.8,
-
- 3.5, 0.56, -6.8,
- 2.1, 0.56, -6.8,
- 0.7, 0.56, -6.8,
- -0.7, 0.56, -6.8,
- -2.1, 0.56, -6.8,
- -3.5, 0.56, -6.8,
-
- 2.8, 1.68, -6.8,
- 1.4, 1.68, -6.8,
- 0.0, 1.68, -6.8,
- -1.4, 1.68, -6.8,
- -2.8, 1.68, -6.8,
-
- 2.8, 2.8, -6.8,
- 1.4, 2.8, -6.8,
- 0.0, 2.8, -6.8,
- -1.4, 2.8, -6.8,
- -2.8, 2.8, -6.8,
- };
-
- float *spots[MAX_SPOTS] = {
-
- spot1, spot2, spot3, spot4, spot5, spot6, spot7, spot8, spot9, spot10,
- spot11, spot12, spot13, spot14, spot15, spot16, spot32, spot32, spot32,
- spot32, spot32, spot32, spot32, spot32, spot32, spot32, spot32, spot32,
- spot32, spot32, spot32, spot32,
- };
-
-
- /*---------------------------------------------------------------------------*/
- /* stuff for eight bitplane systems */
-
- #define CM_BACKINDEX 6 /* background color */
- #define CM_TEXTINDEX 3 /* text color */
- #define CM_BUTTONBACKINDEX 4 /* need two entrys to toggle swapbuffers() */
- #define CM_BUTTONINDEX 8 /* highlighted button color ramp */
- #define CM_DIFFUSEOFFSET 7 /* offset in color ramp for diffuse entry */
- #define CM_SPECULAROFFSET 7 /* offset in color ramp for specular entry */
-
- #define BUTTONINDEX7 (CM_BUTTONINDEX + 6)
- #define BUTTONINDEX6 (CM_BUTTONINDEX + 5)
- #define BUTTONINDEX5 (CM_BUTTONINDEX + 1)
- #define BUTTONINDEX4 (CM_BUTTONINDEX + 2)
- #define BUTTONINDEX3 (CM_BUTTONINDEX + 3)
- #define BUTTONINDEX2 (CM_BUTTONINDEX + 4)
- #define BUTTONINDEX1 (CM_BUTTONINDEX)
- #define BUTTONINDEX0 (CM_BUTTONINDEX + 1)
-
- #define CM_BUTTONFRONT (CM_BUTTONINDEX + 3)
-
- int cm_buttoncolor[8] = {
- BUTTONINDEX7,
- BUTTONINDEX6,
- BUTTONINDEX5,
- BUTTONINDEX4,
- BUTTONINDEX3,
- BUTTONINDEX2,
- BUTTONINDEX1,
- BUTTONINDEX0
- };
-
- /*---------------------------------------------------------------------------*/
-